package com.meituan.sdk.model.ddzhkh.shangpin.productShopproductsGet;

import com.meituan.sdk.annotations.ApiMeta;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;
import javax.validation.constraints.NotEmpty;

/**
* 店铺商品查询
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzhkh/shangpin/shopProducts/get",
    businessId = 59,
    apiVersion = "10051",
    apiName = "product_shopproducts_get",
    needAuth = true
)
public class ProductShopproductsGetRequest implements MeituanRequest<ProductShopproductsGetResponse> {
    @NotEmpty(message = "opPoiIds不能为空")
    @SerializedName("opPoiIds")
    private List<String> opPoiIds;
    /**
    * <p data-diff-id="ct-diff-id-f49aae90-50e9-491f-82e7-a3ce536aae09"><span style="color: rgb(31, 45, 61)">商品分类（存量可不传），医美预付-850，酒吧-2000327</span></p>
    */
    @SerializedName("spuType")
    private String spuType;
    /**
    * <p data-diff-id="ct-diff-id-16fdadd4-26c0-4534-b2b7-ae73b7003a33"><span style="color: rgb(31, 45, 61)">页码，从1开始</span></p>
    */
    @NotNull(message = "pageNo不能为空")
    @SerializedName("pageNo")
    private Integer pageNo;
    /**
    * <p data-diff-id="ct-diff-id-7f2f8cf3-e613-4e35-b872-04ddf5960256"><span style="color: rgb(31, 45, 61)">每页的大小，最大100</span></p>
    */
    @NotNull(message = "pageSize不能为空")
    @SerializedName("pageSize")
    private Integer pageSize;

    public List<String> getOpPoiIds() {
        return opPoiIds;
    }
    public void setOpPoiIds(List<String> opPoiIds) {
        this.opPoiIds = opPoiIds;
    }
    public String getSpuType() {
        return spuType;
    }
    public void setSpuType(String spuType) {
        this.spuType = spuType;
    }
    public Integer getPageNo() {
        return pageNo;
    }
    public void setPageNo(Integer pageNo) {
        this.pageNo = pageNo;
    }
    public Integer getPageSize() {
        return pageSize;
    }
    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }


    @Override
    public MeituanResponse<ProductShopproductsGetResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<ProductShopproductsGetResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "ProductShopproductsGetRequest{" + "opPoiIds=" + opPoiIds + "," + "spuType=" + spuType + "," + "pageNo=" + pageNo + "," + "pageSize=" + pageSize + "}";
    }
}
